(Not Applicable)
(Not Applicable)
1. Technical Field
This invention relates generally to computer networks and more specifically to a method and apparatus for hosting a logical address based network protocol suite on a high speed serial bus network.
2. Description of the Related Art
It is commonly known that digital data may be communicated between various microprocessor controlled devices, including computers, by making use of certain types of networks. In this regard, there have been developed various network architectures and protocols to implement such systems in accordance with international standards. These protocols or standards ensure compatibility among various different kinds of computer controlled devices. In effect, the protocols provide a formal set of rules defining how to transmit data across the network and among the devices connected thereto.
Conventional network architectures typically are divided into a plurality of layers. For example, the opens systems interconnect or xe2x80x9cOSIxe2x80x9d Reference Model of network architecture establishes seven layers, comprising (from lowest to highest) a (1) physical layer, (2) datalink layer, (3) network layer, (4) transport layer, (5) session layer, (6) presentation layer and (7) application layer. Each layer in the hierarchy typically uses the function provided by the layer immediately below, and provides services to the layer above. One of the most commonly used network protocols is known as TCP/IP.
Transmission Control Protocol, or xe2x80x9cTCPxe2x80x9d as it is commonly called, is the most common type transport layer protocol. It provides flow control, multiplexing and connection oriented communication. TCP provides a point to point connection so that computer xe2x80x9cAxe2x80x9d can send messages to computer xe2x80x9cBxe2x80x9d, and they will arrive un-corrupted and in correct order. The TCP layer also establishes and dissolves connections between devices on the network. TCP is designed to operate over a type of network layer known as Internet Protocol or xe2x80x9cIPxe2x80x9d and the two layers are almost always operated together in the combination commonly referred to as TCP/IP (TCP over IP). IP is a best effort packet switching protocol which controls packet routing, fragmentation and re-assembly through the data-link layer. The commonly used TCP/IP protocol suite is comprised of five layers. These include (from lowest to highest) the physical, data link, internet, transport and application.
One problem with computer networks, is that the bandwidth or speed at which data can be transmitted, is often limited. In recent years, however, a standard for a new type of high speed serial bus has been developed for transporting digital data. This high speed serial bus is known as IEEE 1394 (hereinafter xe2x80x9cIEEE 1394xe2x80x9d), which is a hardware and software standard for transporting data. IEEE 1394 devices are designed to have multiple connectors, allowing devices to be connected together in daisy chain and tree topologies. In addition to a cable specification, IEEE 1394 also defines a backplane specification, which supports devices in a multidrop bus environment.
The IEEE 1394 standard involves the lowest three of the ISO protocol layers described above. In the IEEE 1394 specification, these are referred to as the physical layer, the link layer and the transaction layer. In addition, a Serial Bus Management component is defined that provides the functions needed to control nodes or to manage bus resources. The upper two layers, namely the Link Layer and the Transaction Layer, connect to the application. The Link Layer provides packet receive and transmit capabilities for asynchronous and isochronous data transfers, whereas the Transaction Layer supports the asynchronous protocol Read, Write and Lock commands as discussed in below in greater detail. The lowest ISO layer, namely the Physical Layer, interfaces directly with the physical IEEE 1394 media and aids in bus initialization.
According to the IEEE 1394 standard, data is transferred between the various nodes on the serial bus by three different transaction types, namely the Read, Write and Lock commands as noted above. A Read transaction type permits data at a particular address within a responder to be transferred back to a requester. A Write transaction type permits data to be transferred from a requester to an address within one or more responders. A Lock transaction type permits data to be transferred from a requester to a responder, processed with data at a particular address within the responder, and then transferred back to the requester.
Due to the very common usage of TCP/IP network protocol within the computer industry, there are a great number of application programs and systems already in existence which are compatible with that standard. These are commonly referred to as the Internet Protocol suite. For example, the Internet Protocol suite includes a variety of application programs such as File Transfer Protocol (xe2x80x9cFTPxe2x80x9d) for permitting a user of one computer to transfer files to and from another computer over a TCP/IP network; TELNET, the internet standard protocol for remote login which runs in a layer above TCP/IP; Network File System (xe2x80x9cNFSxe2x80x9d) Client/Server, which allows a computer to access files over a network as if they were on its local disks; Remote Procedure Call (xe2x80x9cRPCxe2x80x9d) which allows a program running on one host to cause code to be executed on another host; Remote Shell, BootP (used for booting diskless workstations), Sockets (for forming the interface between a Unix standard I/O and network communication facilities). Other such applications exist and are well known to those familiar with the field.
Significantly, with the recent development of the IEEE 1394 network standard, there has arisen a need to permit these existing software applications and systems comprising the IP protocol suite to communicate with one another using the new standard IEEE 1394 network. Likewise, there has also arisen a need to permit such applications and others to request and obtain access to bandwidth for isochronous data transfers on an IEEE 1394 type network. However, there are several serious obstacles which have prevented this type of IP suitexe2x80x94IEEE 1394 integration. Most significant, perhaps, is the dynamic nature of the addresses which are used in connection with the IEEE 1394 bus. In particular, the IEEE 1394 network specification provides that any time a node is added or removed from the system, either by physical connection/disconnection or power up/down, it triggers a bus reset event whereby new physical addresses may be assigned to each device on the network. A bus reset indication forces all nodes into a special state that clears all topology and address information, and causes the devices on the network to perform a procedure by which they are assigned new physical addresses. This is contrary to typical network devices and topology which assign fixed addresses.
The IP suite defines an Address Resolution Protocol (xe2x80x9cARPxe2x80x9d) entity which creates and automatically maintains physical to logical address mapping in memory in the form of an ARP table. Each network device will normally maintain its own ARP table. The ARP entity determines the physical (hardware) address of a computer""s network interface by means of an ARP request, which is broadcast across the network. The request is an indication to the network device that is assigned a particular IP address to respond with its physical address. When the response is transmitted, it is loaded into the requesting network device""s ARP table. ARP is a standard Internet protocol that is documented in RFC 826, which details how information should be exchanged between nodes and processed by nodes to support address translations. RFC 826 describes the possibility of nodes xe2x80x9cmovingxe2x80x9d but does not present a solution to this problem, nor does it discuss the possibility of entire networks re-assigning physical addresses.
What makes this problem unique to IEEE-1394 networks is the dynamic nature of physical addressing of the IEEE-1394 protocol. As noted above, in the IEEE-1394 cable bus environment nodes can be added to and removed from an operational network independently. Each time this occurs the network re-evaluates the bus topology and re-assigns physical addresses to each node and therefore, any previously acquired Address Resolution information may be invalid.
Each time an IEEE 1394 bus goes through the process of physical address re-assignment, each node on the bus exchanges a xe2x80x9cself idxe2x80x9d packet with each other node. Each node collects these xe2x80x9cself idxe2x80x9d packets to form a xe2x80x9cbus topologyxe2x80x9d map. As it turns out the resulting topology map is of little use in re-generating an existing ARP table because each xe2x80x9cself idxe2x80x9d packet contains only the sending node""s new physical address, not its previous address.
A programmable computer interface method and system for hosting a logical address based network protocol suite on a high speed serial bus network which has operatively connected thereto a plurality of network devices, each defining a node with a dynamically variable physical address. The computer system means for storing in the devices a physical address together with a corresponding device logical address in an address resolution table, the address resolution table providing a mapping between the physical addresses and the logical addresses. Monitoring means are provided to monitoring the network to identify the occurrence of a bus reset event which has the potential to change a physical address assigned to the nodes. Further, means are provided for updating the address resolution table upon the occurrence of the bus reset event; and for accessing the address resolution table upon receipt of a data packet to be transmitted on the network to determine an updated physical address for a device on the network based upon the logical address. In a preferred embodiment, the utility for maintaining the address resolution table is an application comprising the logical address based network protocol suite.
In one embodiment, the utility for maintaining the address resolution table is part of the logical address based network protocol suite, and the logical address based network protocol suite is configured to operate with a conventional network wherein the physical addresses are comprised of additional bits as compared to the physical addresses of the high speed serial bus network. In that case, appropriate hardware and software is provided for forming a simulated address by appending least significant bits to the serial bus network physical address so that its total address length is equivalent to addresses used in the conventional network. The simulated address is then provided to the address resolution table.
Two alternative approaches are provided for updating the address resolution table. In one embodiment, the interface deletes existing data contained in the address resolution table and causes the address resolution table to regenerate itself using conventional means. Alternatively, updating the address resolution table can be performed by software provided for extracting from the address resolution table each the logical address contained therein; generating a broadcast network request for each the logical address, the network request containing the logical address; receiving a response from the device with a matching logical address which identifies a new physical address; and extracting from each response the new physical address and replacing each of the physical addresses with the new physical address corresponding to the logical address.
In those instances where the logical address based network protocol suite is configured to operate with a conventional network wherein the physical addresses are comprised of additional bits as compared to the physical addresses of the high speed serial bus network, the system further includes software for forming a simulated address by appending least significant bits to the serial bus network physical address so that its total address length is equivalent to addresses used in the conventional network and providing the simulated address to the address resolution table.
The invention further includes software for receiving a data packet from an application program executing on a first one of the devices configured with logical address based network protocol, the data packet addressed to a second one of the network devices; analyzing the data packet address to determine if the data packet is intended for an application associated with the logical address based network protocol suite; accessing the address resolution table to obtain the physical address for the second device based upon the logical address; assembling a frame header for the data packet, the frame header including an address field; inserting into the address field the physical address; and for transmitting the data via the network for receipt by the second device identified by the physical address. In the case where simulated physical addresses are used in which additional least significant bits have been added, the invention further includes software for stripping the least significant bits from the simulated physical address prior to inserting the physical address in the address field.
The programmable computer interface system is configured for receiving a data packet from the network, the data packet comprising a network information header containing a data packet address; for extracting from the data packet address a message type, the message type identifying a specific logical address based network protocol application for which the message is intended; for removing from the data packet the network information header; and for placing the data packet and the message type on the stack comprising the logical address based network protocol suite for further processing.
In one embodiment of the invention, the logical address based network protocol suite is an internet protocol suite and the high speed serial bus network is configured in accordance with the IEEE-1394 high speed serial bus standard. In that case, an indication of the bus reset event is generated by an occurrence of adding a node and removal of a node from the network.